1. Field of the Invention
The present invention relates to networks, and more particularly, to accelerating receive-modify-send frames in a fibre channel network.
2. Background of the Invention
Fibre channel is a set of American National Standard Institute (ANSI) standards, which provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre channel provides an input/output interface to meet the requirements of both channel and network users.
Fibre channel supports three different topologies: point-to-point, arbitrated loop and fibre channel fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop. The fibre channel fabric topology attaches host systems directly to a fabric, which are then connected to multiple devices. The fibre channel fabric topology allows several media types to be interconnected.
Fibre channel is a closed system that relies on multiple ports to exchange information on attributes and characteristics to determine if the ports can operate together. If the ports can work together, they define the criteria under which they communicate.
Traditional fibre channel port implementations maintain frame buffers for transmit-side separate from the receive-side. This separation prevents contention during full-duplex operations, but induces unnecessary firmware overhead for “Receive-Modify-Send” fibre channel frames.
FIG. 2A shows a conventional implementation of receive and transmit buffers in a fibre channel port 200 coupled to fibre channel network 206. A Receive (“Rx”) Buffer 201 may be in use at the same time as a Transmit (“Tx”) Buffer 202 if FC Port 200 supports full-duplex data transfers. Separating the buffers for receive-side from transmit-side prevents contentions and/or race conditions. FC Port State Machine 205 implements the state machine requirements as per the Fibre Channel standard using control information 203 and 204. For example, the FC Port State Machine 205 in an Arbitrated Loop environment would implement the Loop Port State Machine (LPSM), as per the FC-AL standard.
FIG. 2B shows incoming frames 207 that are received in buffer 201/202. FIG. 2C shows outgoing frame(s) 208 from transmit buffer 202.
FIG. 2D shows the process flow for frames that are received and then modified before transmission (“Receive-Modify-Send” frames also referred to as “RMS frames”). Frame 207A is an RMS frame that is received by the Rx buffer 201. Firmware detects if an RMS frame is received. Thereafter, the frame is copied (209) to Tx buffer 202. The frame is modified in the Tx buffer 202 and then sent out as frame 210.
The conventional techniques are cumbersome and slow because RMS frames have to be copied first and then modified in the Tx buffer. This requires extra firmware operation and slows the overall system.
Therefore, there is a need for a method and system to efficiently process RMS frames in FC networks.